package com.sinosoft.ptas.dao;

import java.util.List;









import org.apache.ibatis.annotations.Param;

import com.sinosoft.ptas.control.dto.OrganizationData;
import com.sinosoft.ptas.entity.TargetAttOrgRefEntity;
import com.sinosoft.ptas.entity.TargetAttributeEntity;

/**
 * 目标属性持久层
 * @author lianWuJun
 * @time   2017年2月28日 上午10:45:01
 */
public interface TargetAttributeMapper {
	
	/**
	 * 创建目标属性
	 * @param targetAttribueEntity
	 */
	public void createTargetAttribute(TargetAttributeEntity targetAttributeEntity);
	
	/**
	 * 根据目标属性编号查询目标属性
	 * @param id
	 * @return 目标属性实体
	 */
	public TargetAttributeEntity retrieveTargetAttributeById(String id);
	
	/**
	 * 根据目标属性的各个属性查询目标属性
	 * @param targetAttribueEntity
	 * @return 目标属性实体集合
	 */
	public List<TargetAttributeEntity> retrieveTargetAttributes(TargetAttributeEntity targetAttributeEntity);
	
	/**
	 * 根据目标属性编号更新目标属性
	 * @param targetAttribueEntity
	 */
	public void updateTargetAttribute(TargetAttributeEntity targetAttributeEntity);

	/**
	 * 根据目标属性编号删除目标属性
	 * @param id
	 */
	public void deleteTargetAttributeById(String id);
	
	/**
	 * 根据目标属性编号删除目标属性
	 * @param pcid
	 */
	public void deleteTargetAttributeByPcid(String pcid);
	
	/**
	 * 批量添加目标属性和其他司对应关系
	 * @param TargetAttOrgRefEntitys
	 */
	public void createTargetAttributeOrganizationRef(List<TargetAttOrgRefEntity> TargetAttOrgRefEntitys);
	
	/**
	 * 
	 * 根据目标属性id删除目标属性关系
	 */
	public void deleteTargetAttributeRefByTaId(String id);
	
	/**
	 * 根据目标属性编号查询司局
	 * @param taId
	 * @param identify   标识  0代表省司  1代表其他司
	 * @return 其他司实体集合
	 */
	public List<OrganizationData> retrieveOrganizationByTaId(@Param("taId") String taId,@Param("identify") String identify);

	/**
	 * 根据其他司编号查询目标属性
	 * @param orgId
	 * @return 目标属性实体集合
	 */
	public List<TargetAttributeEntity> retrieveTargetAttributeByOrgId(String orgId);
	
	/**
	 * 根据其他司编号删除目标属性
	 * @param orgId
	 */
	public void deleteTargetAttOrgRefByOrgId(String orgId);
	
	/**
	 * 根据目标属性编号更新目标属性与司局对应关系的司局编号
	 * @param  taore
	 */
	public void updateTargetAttributeOrganizationRef(TargetAttOrgRefEntity taore);
	
	/**
	 * 根据目标属性编号查询目标属性和司局的对应关系
	 * @param taid
	 * @return 目标属性和司局对应关系实体
	 */
	public TargetAttOrgRefEntity retieveTargetAttributeOrganizationRef(String taid);
	
	
	/**
	 * 根据项目类型编号查询目标属性
	 * @param pcid
	 * @return 目标属性实体集合
	 */
	public List<TargetAttributeEntity> retrieveTargetAttributeBypcid(String pcid);
	
}
